// ++++++++++++++++++++++++++++++++++++++++
// 《零基础Go语言算法实战》源码
// ++++++++++++++++++++++++++++++++++++++++
// Author:廖显东（ShirDon）
// Blog:https://www.shirdon.com/
// Gitee:https://gitee.com/shirdonl/goAlgorithms.git
// Buy link :https://item.jd.com/14101229.html
// ++++++++++++++++++++++++++++++++++++++++

package main

import "fmt"

// 以整数作为输入并返回其阶乘的阶乘函数
func factorial(n int) int {
	// 基本情况：如果 n 等于 0，则阶乘为 1
	if n == 0 {
		return 1
	}
	// 递归情况：将 n 乘以 (n-1)！
	return n * factorial(n-1)
}

func main() {
	// 初始化变量 n 为 6
	n := 6
	// 使用阶乘函数打印 n 的阶乘
	fmt.Printf("%d! = %d\n", n, factorial(n))
}

//$ go run recursiveAlgorithm.go
//6! = 720
